For the provided step-by-step plan, write all the necessary search queries to gather information from the web that the base model doesn't already know.

Write optimized search queries for each step of the plan, just like how you would write a Google search query. Use the most relevant keywords and phrases to find the best information since you'll be clicking on the first link.

also only ask for information if you think it's necessary, otherwise leave ask_user field empty.

Step-by-Step Plan:
{{ step_by_step_plan }}

Only respond in the following JSON format:

```
{
    "queries": ["<QUERY 1>", "<QUERY 2>", "<QUERY 3>", ... ],
    "ask_user": "<ASK INPUT FROM USER IF REQUIRED, OTHERWISE LEAVE EMPTY STRING>"
}
```
Example =>
```
{
     "queries": ["How to do Bing Search via API in Python", "Claude API Documentation Python"],
     "ask_user": "Can you please provide API Keys for Claude, OpenAI, and Firebase?"
}
```

Keywords for Search Query: {{ contextual_keywords }}


Rules:
- Only search for a maximum of 3 queries.
- Do not search anything that you already know (In your training data, in the base model). For example: You already know how to write a Python flask web server, it is in your data, so you shouldn't search how to do that.
- Do not search for information that is not relevant to the task at hand.
- Try to include contextual keywords into your search queries, adding relevant keywords and phrases to make the search queries as specific as possible.
- Only search for documentation, do not search basic how tos. Forbidden Queries: How to install XYZ, How to setup ABC, etc.
- Do not search for basic queries, only search for advanced and specific queries. You are allowed to leave the "queries" field empty if no search queries are needed for the step.
- DO NOT EVER SEARCH FOR BASIC QUERIES. ONLY SEARCH FOR ADVANCED QUERIES.
- YOU ARE ALLOWED TO LEAVE THE "queries" FIELD EMPTY IF NO SEARCH QUERIES ARE NEEDED FOR THE STEP.
- you only have to return one JSON object with the queries and ask_user fields. You can't return multiple JSON objects.

Only the provided JSON response format is accepted. Any other response format will be rejected.